package formas.txt;
import formas.Punto;
import formas.Tablero;
import formas.Dibujable;
import java.util.Iterator;

public class TableroTxt extends Tablero {
	private static final String RELLENO = "*";
	private static final String ESPACIO = " ";
	private static final String MARCOVERTICAL = "|";
	private static final String MARCOHORIZONTAL = "-";

	// constructor, recibe base y altura del tablero
	public TableroTxt(int base, int altura) {
		super(base, altura);
	}

	// dibuja el tablero con los Dibujables dentro
	public void dibujar() {	
		dibujarMarco();
		System.out.println();
		dibujarCuerpo();
		dibujarMarco();
	}

	// dibuja marco superior e inferior tablero
	private void dibujarMarco() {	
		for (int fila = 0; fila < base; fila++) {
			System.out.print(MARCOHORIZONTAL);
		}
	}
	
	// dibuja cuerpo del tablero con los Dibujables dentro
	private void dibujarCuerpo() {
		for (int fila = 1; fila < base; fila++) {
			for (int col = 1; col < altura; col++) {

				boolean flagDibujar = false;
				Iterator<Dibujable> it = super.getDibujos().iterator();
				while (it.hasNext() && !flagDibujar) {
					Dibujable d = it.next();
					flagDibujar = d.siEsta(new Punto(fila, col));
				}
				if(col==1 || col==base-1){System.out.print(MARCOVERTICAL);}
				if (flagDibujar) {
					System.out.print(RELLENO);
				} else {
					System.out.print(ESPACIO);
				}

			}
			System.out.println();
		}
	}
}
